interface CrudTableModel {
  /**
   * 用户编号
   */
  id?: number
  /**
   * 用户名
   */
  userName?: string
  /**
   * 用户账号
   */
  userAccount?: string
   /**
    * 用户密码
    */
  userPassword?:string
  /**
   * 用户角色
   */
   roleIds?:[]
}
interface addUserType {
  user:CrudTableModel,
  roleIds:[] | undefined
}


type CrudTableParams = Partial<Omit<CrudTableModel, 'id'>>

export async function getListApi(params?: CrudTableParams) {
  return useGet<any>('/user/getUserListByCriteria', params,
  {
    // 设置为false的时候不会携带token
    token: true,
    // 开发模式下使用自定义的接口
    customDev: true,
    // 是否开启全局请求loading
    loading: true,
  })
}

// 新增用户
export async function addUser(params:CrudTableModel) {
  let data: addUserType = {
    user:{
      userName:params.userName,
      userPassword:params.userPassword,
      userAccount:params.userAccount
    },
    roleIds:params.roleIds

  }
  console.log(data)
  return usePost<any>('/user/adduser',data,
  {
    token: false,
    customDev: true,
    loading: true,
  })
}

// 编辑用户
export async function updateUser(params:CrudTableParams) {
  return usePut<any>('/user/updateUser',params,
  {
    token: true,
    customDev: true,
    loading: true,
  })
}

// 删除用户
export async function deleteUser(id: string | number) {
  return useDelete('/user/deleteUser',id,
  {
    token: true,
    customDev: true,
    loading: true,    
  })
}

export type{
  CrudTableParams,
  CrudTableModel,
}
